package com.example.farmer.Presenter;

import com.example.farmer.Database.CirclePostDatabase;
import com.example.farmer.View.Circle.CirclePostView;

//中转逻辑

public class CirclePostPresenter {
    private CirclePostView mView;
    private CirclePostDatabase circlePostDatabase;
//    private CircleChooseDatabase circleChooseDatabase;

    public CirclePostPresenter(CirclePostView view) {
        mView = view;
        circlePostDatabase = new CirclePostDatabase(view.getContext());
//        circleChooseDatabase = new CircleChooseDatabase(view.getContext());
    }

    public void post(String content, String imageUrl,String userNumber) {
        // 显示加载指示器
        mView.showLoading();
        // 执行数据库插入操作
        if (validateContent(content)) {
            long postId = circlePostDatabase.insertPost(content, imageUrl);
//            long postId1 = circleChooseDatabase.insertPost(content,imageUrl);
            if (postId != -1) {
                // 插入成功
                mView.hideLoading();
                mView.showPostSuccess();
                // 这里可以添加发布到服务器的逻辑
            } else {
                // 插入失败
                mView.hideLoading();
                mView.showPostError("数据库插入失败，请稍后重试");
            }
        } else {
            mView.hideLoading();
            // 显示验证失败的错误信息
            mView.showPostError("内容验证失败");
        }

    }

    private boolean validateContent(String content) {
        // 检查内容是否为空或者只包含空白字符
        if (content == null || content.trim().isEmpty()) {
            // 内容为空，发布失败并说明理由
            mView.hideLoading();
            mView.showPostError("文字部分不能为空");
            return false;
        }
        // 检查内容长度是否至少为7个字符
        if (content.length() < 7) {
            // 内容长度不足，发布失败并说明理由
            mView.hideLoading();
            mView.showPostError("内容至少需要7个字符");
            return false;
        }
        // 检查内容是否只包含数字、字母、汉字和标点符号
        if (!isValidContent(content)) {
            // 内容包含无效字符，发布失败并说明理由
            mView.hideLoading();
            mView.showPostError("内容只能包含数字、字母、汉字和标点符号");
            return false;
        }
        return isValidContent(content);
    }


    private boolean isValidContent(String content) {
        String regex = "^[\u4e00-\u9fa5a-zA-Z0-9,.!?;，。:：“‘() ]+$";
        return content.matches(regex);
    }

//    // 新增方法以获取当前用户的帖子
//    public void loadPostsForCurrentUser(String userNumber) {
//        mView.showLoading();
//        List<CirclePost> posts = post_db.getPostsByUser(userNumber);
//        if (posts != null && !posts.isEmpty()) {
//            mView.hideLoading();
//            mView.showPosts(posts);
//        } else {
//            mView.hideLoading();
//            mView.showPostError("没有找到帖子");
//        }
//    }
}


